![Tableau Tips: 『データブレンディング』でコード値に対応するマスタ名称をTableau上で紐付ける](https://devio2023-media.developers.io/wp-content/uploads/2014/04/tableau-icon-for-blog.png)
Tableau Tips: 『データブレンディング』でコード値に対応するマスタ名称をTableau上で紐付ける
Tableauに関するちょっとした小ネタです。
手元にあるデータを可視化する際、多くの場合はトランザクションデータがあり、マスタデータがあり、トランザクションデータの中身には任意の情報を示す『コード値』があり、そのコード値に対応する名称を(コード値で結合させて)マスタデータから引っ張ってくる...という様な手順を踏んで分析・参照データを形作る事は良く行う作業になるかと思います。データ可視性の観点から言っても、01,02,...という数字が並んでいるよりはそれに対応する名称で内容を確認したり絞込みを行う事が出来た方がユーザーにも優しいはずです。
こういった情報を構築する際の一つの手法としては、データをデータベースやデータウェアハウスに取り込み、SQLで情報の結合を行ったものを別テーブルに作成するのが最も一般的でしょう。しかしこちらの手法は事前に『データのDB/DWHへの取り込み』『SQLによるETL』及びそれらの作業に関する各種準備が必要となります。手元のデータを手っ取り早く見たい時は若干手間となる部分もありますね。
Tableauには『データブレンディング』という機能があり、この機能を活用する事で上記の作業を手軽に実現する事が出来ます。当エントリではその手順について簡単ではありますがご紹介したいと思います。
Tableau データブレンディングとは
『データブレンディング』は、複数のデータソースを1つTableauワークシート上でブレンド(混ぜ合わせる)する事で1つのデータソースとして情報を扱う機能になります。詳しい内容については以下Tableau公式ドキュメントをご確認ください。
データブレンディング実演
上記SuperStoreサンプルデータはTableau製品をお使いの方であれば毎度お馴染みのデータファイルになるかと思いますが、こちらのデータはデモ実演用に『整えられた』内容となっています。項目列で数値で表されている情報は金額等の情報に限られ、任意の名称を表す様な項目については全てそのコード値が名称に置き換えられている形となっています。
ですが往々にして、手元にあるであろうデータはこんな感じになっているのではないでしょうか。以下は都道府県と地域をそれぞれ『都道府県 → 都道府県コード』、『地域 → 任意のアルファベット1文字』に変換してみた例ですが、このような形で数値なりコード値でデータとして存在し、名称は別途マスタ情報を必要とします。
参照すべきマスタ情報を以下のようにEXCEL別シートで作ってみます。『都道府県マスタ』と『地域マスタ』です。
まずは通常通りOrdersシートを取り込んでみます。都道府県と地域については上記で編集したようにコード値のままです。
地域と都道府県のコード値を以って簡単なテキスト表を作ってみます。
そしてここから、マスタ名称のデータソースを追加します。メニューの[データ]から[新しいデータソース]を選択。
先程のOrdersを追加した時と同じ手法でデータを取り込みます。
地域マスタがデータソースとして追加されました!ディメンション及びメジャーウインドウの左端(データペイン)が、"セカンダリデータソース"である事を示すオレンジの線で示されています。
地域(コード)に対応する地域マスタの名称を使用し、地域(コード)のヘッダー表示をOFFにします。
すると、データ上は連結しつつも表示上はコード値が隠され、名称が表示される形が実現出来ました!都道府県についても同様の操作で手順を進めます。
以下が完成形です。見た目的には変わりませんが、データの構成としては複数のデータソースをブレンドする形で目標を実現出来ました。
まとめ
以上、Tableauに於ける『データブレンディング』でコード値に於けるマスタ名称の連結作業を効率化させる手法についてのご紹介でした。
ちなみに今回はデータ結合の部分をEXCELで実践してみましたが、これらはEXCELに限らずどんなデータソースでも実現が可能です(結合する際の項目名を合わせる等の対応は必要です)。RedshiftとMySQLとEXCELとTableau抽出ファイルのデータをTableau上で併せて表示させる...なんて事も可能です。(パフォーマンス面がちょっと気になりますが)
データの件数や作業の自動化・効率化等を考えると、最終的にはデータをDBやDWHに取り込み、ETL/ELT処理を経てデータベース上で連結させた/非正規化した状態でデータを格納し、Tableauからは名称結合済のテーブルを参照する方が良いでしょう。ただ検証の初期段階で何をどう見せる必要があるかをプロトタイプで確認しておきたい、または扱う件数が然程多くないという場合であれば充分有効に活用出来る手法であると思います。とても便利な機能なので是非活用してみてください。こちらからは以上です。